#include <stdio.h>
#include <string.h>
#include <unistd.h>

int main()
{
  
     //c语言每打开一个文件 文件FILE结构体里都会维护一段缓冲区 每个文件都有 默认有1 2 3
     //这个缓冲区是属于用户的   	
    //\n 显示器文件是行缓冲 所以才会刷新 有些文件不是行缓冲 就不会刷新
     // printf("hello Linux\n");
    //close(1);

    //return 0;
    const char *fstr = "hello fwrite";
    const char *str = "hello write";

    //写入了 C提供的 缓冲区 需要刷新才能把数据刷到操作系统
    printf("hello printf"); // stdout -> 1
   // sleep(2);
    fprintf(stdout, "hello fprintf"); // stdout -> 1
   // sleep(2);
    fwrite(fstr, strlen(fstr), 1, stdout); // fread, stdout->1
   // sleep(2);

    // 操作提供的systemcall
    write(1, str, strlen(str)); // 1

   // sleep(5);
    //close(1); // ?
    fork(); //缓冲区刷新就是修改 共享数据发生改变 就会触发写时拷贝 父子进程就会各自持有一份
    return 0;
}
